﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;

namespace EGuayas.Web.Auditoria.Expedientes
{
    public partial class pgExternos : pgBase
    {
        #region Set-Session
        /// <summary>
        /// 
        /// </summary>
        protected UsuarioInfo InfoTmp
        {
            set
            {
                Session[SessionPage.PageAudExt + "_pgPromotorInfoTmp"] = value;
            }
        }
        #endregion Set-Session
        
        protected void Page_Load(object sender, EventArgs e)
        {
            try{
            if (!X.IsAjaxRequest)
            {
                //Setear sesion para crear nuevo promotor
                SetSessionPage setSess = new SetSessionPage(SessionPage.PageAudExt, Valores.PageEvento_Nuevo);
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void btnCaledariza_Click(object sender, DirectEventArgs e)
        {
            try
            {
            //e.ExtraParams["Identificacion"]
            this.pnlCalendarizacion.Show();
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void btnBuscarUsuarios_Click(object sender, DirectEventArgs e)
        {
            try
            {
               UsuarioLista list = BusquedaPromotorDatos(e.ExtraParams["Identificacion"], e.ExtraParams["Nombre"], e.ExtraParams["Apellido"]);
             
               stoListaUsuarios.DataSource = list;
               stoListaUsuarios.DataBind();
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
       }
       [DirectMethod(ShowMask = true)]
       public void SetInfoPromotor(string sIdent, string sNombr, string sApellid,int nRecordUser)
       { 
           try{
                  UsuarioInfo userNew;
                  if (nRecordUser == 0 )
              
                       userNew = new UsuarioInfo(sIdent, sNombr, sApellid,Valores.Codigo_Estado_Activo);
                  else
                       userNew = new UsuarioInfo("", "", "",Valores.Codigo_Estado_Activo);

                  InfoTmp = userNew;
           }
           catch (Exception ex)
           {
               RegistrarLog(ex);
           }
       }
       [DirectMethod(ShowMask=true)]
       public UsuarioInfo BusquedaPromotor(string sIdent)
       {
           try
           {
            UsuarioInfo valReturn = null;
            UsuarioLista list = BusquedaPromotorDatos(sIdent, "", "");
            if (list.Count != 0)
            { 
                valReturn =list.First();
            }
            return (valReturn);
           }
           catch (Exception ex)
           {
               RegistrarLog(ex);
           }
           return null;
        }
        [DirectMethod(ShowMask = true)]
        public void BusquedaPromotorCriterios(string sIdent, string sNombr, string sApellid)
        {
            try{
                if (sIdent != "" || sNombr != "" || sApellid!= "")
                {
                    UsuarioLista list = BusquedaPromotorDatos(sIdent, sNombr, sApellid);

                    stoListaUsuarios.DataSource = list;
                    stoListaUsuarios.DataBind();
                }
                else
                {
                    stoListaUsuarios.RemoveAll();
                }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
              
        }
        public UsuarioLista BusquedaPromotorDatos(string sIdent, string sNombr, string sApellid)
        {
           try{
            UsuarioBuscadorCriteria criterioBusqueda = UsuarioBuscadorCriteria.NewUsuarioBuscadorCriteria();
            //
            criterioBusqueda.Identificacion = sIdent;
            criterioBusqueda.Nombre = sNombr;
            criterioBusqueda.Apellido = sApellid;
            criterioBusqueda.RolCode = Valores.Codigo_Rol_Promotor;
            criterioBusqueda.Estado = Valores.Codigo_Estado_Activo;
            UsuarioLista listRta = UsuarioLista.GetUsuarioLista(criterioBusqueda);
            return (listRta);
           }
           catch (Exception ex)
           {
               RegistrarLog(ex);
           }
           return null;


        }
    }
}